package com.bai.Service.Impl;

import com.bai.Constant.ResultConst;
import com.bai.Mapper.EmpMapper;
import com.bai.Pojo.Admin;
import com.bai.Pojo.Emp;
import com.bai.Service.EmpService;
import com.bai.Utils.DtoResultUtil;
import com.bai.dto.PageLimitDto;
import com.bai.dto.PublicResponseBody;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

@Transactional
public class EmpServiceImpl implements EmpService {
    public void setEmpMapper(EmpMapper empMapper) {
        this.empMapper = empMapper;
    }

    @Autowired
    private EmpMapper empMapper;

    @Override
    public PublicResponseBody addEmp(Emp emp) {
        int addEmp = empMapper.addEmp(emp);
        if (addEmp>0){
            return DtoResultUtil.resultSuccess();
        }else {
            return DtoResultUtil.result(-1, ResultConst.add_error);
        }
    }

    @Override
    public PublicResponseBody UpdateEmp(Emp emp) {
        int updateEmp = empMapper.UpdateEmp(emp);
        if (updateEmp>0){
            return DtoResultUtil.resultSuccess();
        }else {
            return DtoResultUtil.result(-1,ResultConst.edit_error);
        }
    }

    @Override
    public PublicResponseBody deleteEmpById(Integer id) {
        int deleteEmpByIdById = empMapper.deleteEmpById(id);
        if (deleteEmpByIdById>0){
            return DtoResultUtil.resultSuccess();
        }else {
            return DtoResultUtil.result(-1, ResultConst.delete_error);
        }
    }

    @Override
    public PageLimitDto QueryAll(String empjob, String empdep, String empname, Integer offset, Integer limit) {
        PageLimitDto pageLimitDto=new PageLimitDto();
        pageLimitDto.setTotal(empMapper.queryAllEmpCount(empjob,empdep,empname));
        pageLimitDto.setRows(empMapper.QueryAll(empjob,empdep,empname,offset,limit));
        return pageLimitDto;
    }

    @Override
    public PublicResponseBody getEmp(Integer id) {
        Emp emp = empMapper.getEmp(id);
        if (emp!=null){
            return DtoResultUtil.resultSuccess(emp);
        }else {
            return DtoResultUtil.result(-1,ResultConst.query_error);
        }

    }
}
